package com.ruoyi.order.service.impl;

import java.util.List;
import java.util.stream.Collectors;

import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.order.mapper.MesModelNodeRelaMapper;
import com.ruoyi.order.domain.MesModelNodeRela;
import com.ruoyi.order.service.IMesModelNodeRelaService;

/**
 * 型号与节点关系Service业务层处理
 * 
 * @author guoxl
 * @date 2025-06-01
 */
@Service
public class MesModelNodeRelaServiceImpl implements IMesModelNodeRelaService 
{
    @Autowired
    private MesModelNodeRelaMapper mesModelNodeRelaMapper;

    /**
     * 查询型号与节点关系
     * 
     * @param relaId 型号与节点关系主键
     * @return 型号与节点关系
     */
    @Override
    public MesModelNodeRela selectMesModelNodeRelaByRelaId(Long relaId)
    {
        return mesModelNodeRelaMapper.selectMesModelNodeRelaByRelaId(relaId);
    }

    /**
     * 查询型号与节点关系列表
     * 
     * @param mesModelNodeRela 型号与节点关系
     * @return 型号与节点关系
     */
    @Override
    public List<MesModelNodeRela> selectMesModelNodeRelaList(MesModelNodeRela mesModelNodeRela)
    {
        return mesModelNodeRelaMapper.selectMesModelNodeRelaList(mesModelNodeRela);
    }

    @Override
    public List<Long> selectRelaListByModelId(Long modelId) {
         MesModelNodeRela mesModelNodeRela = new MesModelNodeRela();
         mesModelNodeRela.setModelId(modelId);
         return mesModelNodeRelaMapper.selectMesModelNodeRelaList(mesModelNodeRela).stream().map( MesModelNodeRela::getStationId).collect(Collectors.toList());
    }
    @Override
    public List<MesModelNodeRela>  queryRelaListByModelId(Long modelId) {
         MesModelNodeRela mesModelNodeRela = new MesModelNodeRela();
         mesModelNodeRela.setModelId(modelId);
         return mesModelNodeRelaMapper.selectMesModelNodeRelaList(mesModelNodeRela);
    }

    /**
     * 查询型号与节点关系列表
     *
     * @param lineNumber 产品线
     * @param modelCode 型号
     * @return 型号与节点关系
     */
    @Override
    public List<MesModelNodeRela> queryRelaListByModelCode(String lineNumber, String modelCode) {
        MesModelNodeRela param = new MesModelNodeRela();
        param.setSubsysCode(lineNumber);
        param.setModelCode(modelCode);
        return mesModelNodeRelaMapper.selectMesModelNodeRelaList(param);    }

    /**
     * 新增型号与节点关系
     * 
     * @param mesModelNodeRela 型号与节点关系
     * @return 结果
     */
    @Override
    public int insertMesModelNodeRela(MesModelNodeRela mesModelNodeRela)
    {
        mesModelNodeRela.setCreateTime(DateUtils.getNowDate());
        return mesModelNodeRelaMapper.insertMesModelNodeRela(mesModelNodeRela);
    }

    /**
     * 修改型号与节点关系
     * 
     * @param mesModelNodeRela 型号与节点关系
     * @return 结果
     */
    @Override
    public int updateMesModelNodeRela(MesModelNodeRela mesModelNodeRela)
    {
        mesModelNodeRela.setUpdateTime(DateUtils.getNowDate());
        return mesModelNodeRelaMapper.updateMesModelNodeRela(mesModelNodeRela);
    }

    /**
     * 批量删除型号与节点关系
     * 
     * @param relaIds 需要删除的型号与节点关系主键
     * @return 结果
     */
    @Override
    public int deleteMesModelNodeRelaByRelaIds(Long[] relaIds)
    {
        return mesModelNodeRelaMapper.deleteMesModelNodeRelaByRelaIds(relaIds);
    }

    /**
     * 删除型号与节点关系信息
     * 
     * @param relaId 型号与节点关系主键
     * @return 结果
     */
    @Override
    public int deleteMesModelNodeRelaByRelaId(Long relaId)
    {
        return mesModelNodeRelaMapper.deleteMesModelNodeRelaByRelaId(relaId);
    }
}
